package com.ruoyi.project.business.schedulerule.service;

import java.util.Date;
import java.util.List;
import com.ruoyi.project.business.schedulerule.entity.MonthScheduleRule;
import com.ruoyi.project.business.schedulerule.request.ListMonthScheduleRuleRequest;
import com.ruoyi.project.business.schedulerule.request.AddMonthScheduleRuleRequest;
import com.ruoyi.project.business.schedulerule.response.MonthScheduleRuleResponse;

/**
 * 排班规则Service接口
 * 
 * @author ${author}
 * @date 2024-03-06
 */
public interface IMonthScheduleRuleService {
    /**
     * 查询排班规则
     *
     * @param id 排班规则ID
     * @return 排班规则
     */
    public MonthScheduleRule selectMonthScheduleRuleById(Long id);

    /**
     */
    public List<MonthScheduleRuleResponse> selectMonthScheduleRuleList(ListMonthScheduleRuleRequest request, Long tenantId);


    public int insertMonthScheduleRule(AddMonthScheduleRuleRequest request, Long operatorId, Long tenantId);

    /**
     * 修改排班规则
     * 
     * @return 结果
     */
    public int updateMonthScheduleRule(MonthScheduleRule entity, Long operatorId, Long tenantId);

    /**
     * 批量删除排班规则
     * 
     * @return 结果
     */
    public int deleteMonthScheduleRuleByIds(Long[] ids, Long operatorId, Long tenantId);

    /**
     * 删除排班规则信息
     * 
     * @return 结果
     */
    public int deleteMonthScheduleRuleById(Long id, Long operatorId, Long tenantId);

    List<MonthScheduleRule> selectRulesByUserIds(List<Long> userIds, int year, int month, Long tenantId);
}
